home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / JFC.bin / MacListCellRenderer.java < prev    next >
Text File  |  1998-06-30  |  7KB  |  230 lines

  1. /*
  2.  * @(#)MacListCellRenderer.java    1.4 98/02/02
  3.  *
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  *
  19.  */
  20.  
  21.  
  22. /*
  23.  * @(#)BasicListUI.java    1.15 97/10/23
  24.  * 
  25.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  26.  * 
  27.  * This software is the confidential and proprietary information of Sun
  28.  * Microsystems, Inc. ("Confidential Information").  You shall not
  29.  * disclose such Confidential Information and shall use it only in
  30.  * accordance with the terms of the license agreement you entered into
  31.  * with Sun.
  32.  * 
  33.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  34.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  35.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  36.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  37.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  38.  * THIS SOFTWARE OR ITS DERIVATIVES.
  39.  * 
  40.  */
  41.  
  42. package com.sun.java.swing.plaf.mac;
  43.  
  44. import com.sun.java.swing.*;
  45. import com.sun.java.swing.event.*;
  46. import com.sun.java.swing.plaf.*;
  47.  
  48. import java.awt.*;
  49. import java.awt.event.*;
  50.  
  51. import java.beans.PropertyChangeListener;
  52. import java.beans.PropertyChangeEvent;
  53.  
  54. import com.sun.java.swing.plaf.basic.BasicListUI;
  55. import java.io.Serializable;
  56.  
  57.  
  58. /*
  59. public class MacListCellRenderer extends com.sun.java.swing.plaf.basic.BasicListCellRenderer
  60.     {
  61.         //final ImageIcon testIcon = new ImageIcon("Icons/CheckBoxEnabledOff.gif");
  62.         static Image image;
  63.  
  64.         
  65.          public MacListCellRenderer() {
  66.             super();
  67.             image = Toolkit.getDefaultToolkit().getImage("test.gif");
  68.         
  69.             MediaTracker tracker = new MediaTracker(this);
  70.             tracker.addImage(image, 0);
  71.             try {
  72.             tracker.waitForID(0);
  73.             } catch (InterruptedException e) {
  74.             System.out.println("INTERRUPTED while loading Image");
  75.             }
  76.             
  77.             }
  78.  
  79.  
  80.         public Component getListCellRendererComponent(
  81.             JList list, 
  82.             Object value,
  83.             int index, 
  84.             boolean isSelected, 
  85.             boolean cellHasFocus)
  86.         {
  87.         
  88.             if (isSelected) {
  89.                 setBackground(list.getSelectionBackground());
  90.                 setForeground(list.getSelectionForeground());
  91.             }
  92.             else {
  93.                 setBackground(list.getBackground());
  94.                 setForeground(list.getForeground());
  95.             }
  96.             
  97.             if (value instanceof Icon) {
  98.                 setIcon((Icon)value);
  99.             }
  100.             else {
  101.                 setText((value == null) ? "" : value.toString());
  102.             }
  103.         
  104.             setFont(list.getFont());
  105.             //setIcon(testIcon);
  106.         
  107.             return this;
  108.         }
  109.           
  110.         public void paint(java.awt.Graphics g)
  111.         {
  112.                int padding = 2;
  113.                
  114.                Icon icon = getIcon();
  115.                //if(icon != null)
  116.                {
  117.                    System.out.println("Icon");
  118.                    g.setColor(java.awt.Color.black);
  119.                    //g.drawLine(0,0,10,10);
  120.                    g.drawImage(image, 0,0,this);
  121.                    
  122.                //    icon.paintIcon(this, g, 10, 10);
  123.                }
  124.                    
  125.                Rectangle rect = new Rectangle(20,0,0, getHeight() );
  126.                
  127.                //set the beginning of the selection rectangle
  128.                if((icon != null) && (icon instanceof com.sun.java.swing.ImageIcon))
  129.                 rect.setLocation(icon.getIconWidth() + getIconTextGap() , 0 );
  130.                                 
  131.                int length = g.getFontMetrics().stringWidth(getText());
  132.                rect.setSize(length, rect.height);
  133.                
  134.                g.setColor(getBackground());
  135.                g.fillRect(rect.x, rect.y, rect.width + padding + padding, rect.height);
  136.                
  137.                FontMetrics fm = g.getFontMetrics();
  138.             int stringwidth = fm.stringWidth(getText());
  139.             int y = fm.getAscent() + fm.getLeading();
  140.             
  141.             g.setColor(getForeground());
  142.                g.drawString(getText(), rect.x + padding, y);
  143.                
  144.               g.setColor(java.awt.Color.white);
  145.                g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1);
  146.        }
  147.    }
  148.   */
  149.   
  150.  
  151. /**
  152.  * <p>
  153.  * Warning: serialized objects of this class will not be compatible with
  154.  * future swing releases.  The current serialization support is appropriate
  155.  * for short term storage or RMI between Swing1.0 applications.  It will
  156.  * not be possible to load serialized Swing1.0 objects with future releases
  157.  * of Swing.  The JDK1.2 release of Swing will be the compatibility
  158.  * baseline for the serialized form of Swing objects.
  159.  */
  160. public class MacListCellRenderer extends com.sun.java.swing.plaf.basic.BasicListCellRenderer
  161. {
  162.     JList list;
  163.     Color highlightColor;
  164.     Color backgroundColor;
  165.     
  166.     public Component getListCellRendererComponent(
  167.         JList list, 
  168.         Object value,
  169.         int index, 
  170.         boolean isSelected, 
  171.         boolean cellHasFocus)
  172.     {
  173.         this.list = list;
  174.     
  175.         if (isSelected) {
  176.             setBackground(list.getSelectionBackground());
  177.             setForeground(list.getSelectionForeground());
  178.             highlightColor = list.getSelectionBackground();
  179.             backgroundColor = list.getBackground();
  180.         }
  181.         else {
  182.             setBackground(list.getBackground());
  183.             setForeground(list.getForeground());
  184.             highlightColor = list.getBackground();
  185.             backgroundColor = list.getBackground();
  186.         }
  187.                 
  188.         if (value instanceof Icon) {
  189.             setIcon((Icon)value);
  190.         }
  191.         else {
  192.             setText((value == null) ? "" : value.toString());
  193.         }
  194.     
  195.         setFont(list.getFont());
  196.     
  197.         return this;
  198.     }
  199.       
  200.     public void paint(java.awt.Graphics g)
  201.     {
  202.            int padding = 2;
  203.                
  204.            Rectangle rect = new Rectangle(0, 2, getWidth() - 1, getHeight() - 5 );
  205.  
  206.            g.setColor(highlightColor);
  207.            
  208.            if(((com.sun.java.swing.plaf.mac.MacListUI)list.getUI()).isActivated())
  209.                g.fillRect(rect.x, rect.y, rect.width, rect.height);
  210.            else
  211.            {
  212.                g.setColor(backgroundColor);
  213.                g.fillRect(rect.x, rect.y, rect.width, rect.height);
  214.                g.setColor(highlightColor);
  215.                g.drawRect(rect.x, rect.y, rect.width, rect.height);
  216.            }
  217.  
  218.            FontMetrics fm = g.getFontMetrics();
  219.         int stringwidth = fm.stringWidth(getText());
  220.         int y = fm.getAscent() + fm.getLeading();
  221.         
  222.         g.setColor(getForeground());
  223.            g.drawString(getText(), rect.x + padding, y);
  224.            
  225.    //        super.paint(g);
  226.           g.setColor(java.awt.Color.white);
  227.            g.drawLine(0, getHeight() - 1, getWidth(), getHeight() - 1);
  228.    }
  229. }
  230.